package com.jml.单例模式;

import java.lang.reflect.Constructor;

public class 反射破坏单例 {
    public static void main(String[] args) throws Exception {
        // 使用反射机制创建我们的对象
        Class<?> aClass = Class.forName("com.jml.单例模式.懒汉式解决并发问题");
        Constructor<?> constructor = aClass.getDeclaredConstructor();
        constructor.setAccessible(true);
        // 走无参构造函数 反射创建对象成功
        懒汉式解决并发问题 instance1 = (懒汉式解决并发问题) constructor.newInstance();
        懒汉式解决并发问题 instance = 懒汉式解决并发问题.getInstance();
        懒汉式解决并发问题 instance2 = (懒汉式解决并发问题) constructor.newInstance();
        System.out.println(instance == instance2);
        System.out.println(instance == instance1);
        System.out.println(instance1 == instance2);
    }
}
